#ifndef ARGS_HPP
#define ARGS_HPP

#include <unordered_map>
#include <stdexcept>
#include <string>
#include <cstdint>

namespace ants::args {
    class argitem {
        protected:
            std::string title;
            std::string value;
            char type;
        public:
            ~argitem();
            argitem();
            argitem(const std::string &title, const std::string &value, char type);
            std::string getTitle() const;
            std::string getValue() const;
            char getType() const;
    };
    class args {
        protected:
            std::unordered_map<int64_t, argitem> arglst;
        public:
            args(int argc, const char **argv);
            ~args();
            const std::unordered_map<int64_t, argitem> &getArgs() const;
            const argitem &getArg(const std::string &title) const;
            size_t getArgCount() const;
            bool hasArg(const std::string &title) const;
    };
}


#endif
